<?php

/**
*	@功能:	 			将图片等比例缩放成保存缩放后的图片
*	@param1 $dstPath:   源图片的全路径
*	@param2 $percent:   缩放的比例
*	@param3 $path :  	新文件保存的路径
*	@param4 $type:  	 新文件保存的格式
*	@param5 $isRand: 	新文件名是否随机 $isRand true为随机,false为不随机
*	@返回值: 缩放后的图片
*
*/


//suofang($dstPath='mei.jpg', $percent = 0.3, $isRand = true);
//suofang($dstPath='mei.jpg', $percent = 3);
//$name = pathinfo($dstPath)['filename'];
//var_dump($name); 


function suofang($dstPath , $percent = 1 , $isRand = false , $path = './percent', $type = 'png') {
	
	//打开源图片(将文件路径转化为资源文件)
	$dst = openAny($dstPath);
	
	//获取源文件的宽,高
	$dstMess = getimagesize($dstPath);
	list($dstWidth, $dstHeight) = $dstMess;
	
	//计算缩放后的图片宽,高
	$newWidth = $percent * $dstWidth;
	$newHeight = $percent * $dstHeight;
	
	//根据缩放后的新图片的宽,高 创建画布
	$newImage = imagecreatetruecolor($newWidth, $newHeight);
	
	//将新的图片复制到画布中
	imagecopyresampled($newImage, $dst, 0, 0, 0, 0, $newWidth , $newHeight, $dstWidth, $dstHeight);
	
	//判断新图片的文件名是否随机
	if ($isRand) {
		
		//echo 333333;
		$name = uniqid() . '.' . $type;
	} else {
		
		//echo 4444;
		$name = pathinfo($dstPath)['filename']. '.' . $type;
		//var_dump($name);
	} 
	$filePath =  rtrim($path, '/') . '/' . $name;
	//var_dump($filePath);
	
	//告知浏览器输出类型
	//header("content-type:image/png");
	
	//将新图片保存到指定路径中
	$func = 'image' . $type;
	$func($newImage ,$filePath);
	
	//销毁图片
	imagedestroy($newImage);
	imagedestroy($dst);
	
	//返回新的图片
	//return $newImage;
}

//封装一个可以打开所有种图片的函数
/**
*	@功能:	 将文件路径转化为资源(此处为图片)文件
*	@param1: 文件路径
*	@返回值: 资源文件
*/

function openAny($imagePath) {
	
	$mime = getimagesize($imagePath)['mime'];

	//根据不同图片格式,创建出不同的资源文件
	switch ($mime) {
		
		case 'image/png': 
			$image = imagecreatefrompng($imagePath);
			break;
			
		case 'image/jpeg': 
		case 'image/jpg': 
		case 'image/jpe':
			$image = imagecreatefromjpeg($imagePath);
			break;
		
		case 'image/wbmp': 
		case 'image/bmp': 
			$image = imagecreatefromwbmp($imagePath);
			break;
		
		case 'image/gif':
			$image = imagecreatefromgif($imagePath);
			break;
				
	}
	return $image;
}

//var_dump(openAny('mei.jpg'));